<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 箭头函数：
        // 1.什么样的函数可以改成箭头函数；赋值式的函数可以改；
        // ES5 
        // 赋值式 、匿名函数
        // let fn = function(){
        //     console.log("fn")
        // }
        // fn();
        // 声明式  命名式 
        // function fn(){
        //     console.log("fn");
        // }
        // fn();

        // 2.如何改箭头函数
        // 没有返还值的函数
        // ES5
        // let fn = function(){
        //     console.log("fn");
        // }

        // ES6
        // let fn = ()=>{
        //     console.log("fn")
        // }
        // fn();
        // 参数问题 ；
        // ES5
        // let fn = function(a){
        //     console.log("fn",a);
        // }
        // ES6箭头语法 ：如果是一个参数可以省略小括号

        // let fn = a=>{
        //     console.log("fn",a);
        // }

        // fn(1);

        // 多个参数不能省略小括号
        // let fn = (a,b)=>{
        //     console.log("fn",a,b);
        // }

        // fn(1,2);

        // 改写有返还值的函数；

        // ES5
        // let fn = function(a){
        //     return a;
        // }
        // es6: 箭头函数 没有大括号的时候 隐式带return；
        //     let fn = a=>{
        //         return a;
        //     };
        //    console.log(  fn(2))

        // ES5
        // let fn = function(age){
        //     return {name:"张三",age};
        // }

        // console.log(fn(21));

        // ES6;有歧义 ；
        // let fn  = age=>({name:"张三",age});
        // let fn = age=>{
        //     return {name:"张三",age}
        // }
        // console.log(fn(21));

        // 各种回调改写箭头函数
        var arr = ["张三", "李四", "王五"];
        //   var newarr =   arr.map(function(item){
        //         return item;
        //     })  
        var newarr = arr.map(item => item);
        console.log(newarr);



        var arr = [{
            name: "张三",
            age: 20,
            gender: "男",
            ischeck: false
        }, {
            name: "李四",
            age: 27,
            gender: "男",
            ischeck: true

        },
        {
            name: "王五",
            age: 23,
            gender: "女",
            ischeck: false

        },
        {
            name: "王六",
            age: 29,
            gender: "男",
            ischeck: true
        }
        ]
        // 1.获取所有的年龄在20以上的人员 2.获取所有的男性 3.判断是否全部ischeck为true
        // var arr2 = arr.filter(function (item) {
        //     return item.age > 20
        // })
        // var arr3 = arr2.filter(function (item) {
        //     return item.gender == "男";
        // })
        // var res = arr3.every(function (item) {
        //     return item.ischeck;
        // })
        // console.log(res);

        // ES6
var res =  arr.filter(item=>item.age>20).filter(item=>item.gender=="男").every(item=>item.ischeck);
console.log(res);

    </script>
</body>

</html>